Computing technology is becoming increasing distributed. Lock servers are often used to synchronize and coordinate state in a distributed system by providing distributed locks. One such application of distributed locking is for leader election in a distributed system. Typically, lock servers are themselves highly available services and replicate the lock state across various replicas. However, the various replicas of a lock server are co-located within the same datacenter or region. If that data center or region experiences temporary outage (and hence is unavailable) or if there is a network issue causing the DNS lookup of the lock service to fail, this can cause availability loss to all other dependent services that rely on that lock server it to serve locks or mandate leader election.
One conventional technology uses a majority protocol to establish locks. In that technology, there are a number of lock servers, each maintaining a copy of the resource. In order for a computing system to establish a lock to that resource, the computing system must obtain a lock from a majority of the lock servers. When the computing system is finished with the resource, the computing system then ideally releases all of the obtained locks on that resource.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.